home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JComponent.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  31.1 KB  |  1,757 lines

  1. package javax.swing;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.AWTEvent;
  5. import java.awt.Color;
  6. import java.awt.Component;
  7. import java.awt.Container;
  8. import java.awt.Dimension;
  9. import java.awt.Font;
  10. import java.awt.Graphics;
  11. import java.awt.Image;
  12. import java.awt.Insets;
  13. import java.awt.Point;
  14. import java.awt.Rectangle;
  15. import java.awt.Window;
  16. import java.awt.event.ActionEvent;
  17. import java.awt.event.ActionListener;
  18. import java.awt.event.FocusEvent;
  19. import java.awt.event.InputEvent;
  20. import java.awt.event.KeyEvent;
  21. import java.awt.event.MouseEvent;
  22. import java.awt.image.ImageObserver;
  23. import java.awt.peer.LightweightPeer;
  24. import java.beans.PropertyChangeListener;
  25. import java.beans.PropertyVetoException;
  26. import java.beans.VetoableChangeListener;
  27. import java.beans.VetoableChangeSupport;
  28. import java.io.IOException;
  29. import java.io.ObjectInputStream;
  30. import java.io.ObjectOutputStream;
  31. import java.io.Serializable;
  32. import java.util.Dictionary;
  33. import java.util.Enumeration;
  34. import java.util.Hashtable;
  35. import java.util.Vector;
  36. import javax.accessibility.AccessibleContext;
  37. import javax.accessibility.AccessibleState;
  38. import javax.swing.border.AbstractBorder;
  39. import javax.swing.border.Border;
  40. import javax.swing.event.AncestorListener;
  41. import javax.swing.event.EventListenerList;
  42. import javax.swing.event.SwingPropertyChangeSupport;
  43. import javax.swing.plaf.ComponentUI;
  44.  
  45. public abstract class JComponent extends Container implements Serializable {
  46.    private static final String uiClassID = "ComponentUI";
  47.    private static final Hashtable readObjectCallbacks = new Hashtable(1);
  48.    private Dimension preferredSize;
  49.    private Dimension minimumSize;
  50.    private Dimension maximumSize;
  51.    private Float alignmentX;
  52.    private Float alignmentY;
  53.    private AncestorNotifier ancestorNotifier;
  54.    Rectangle _bounds = new Rectangle();
  55.    // $FF: renamed from: ui javax.swing.plaf.ComponentUI
  56.    protected transient ComponentUI field_0;
  57.    protected EventListenerList listenerList = new EventListenerList();
  58.    private Hashtable clientProperties;
  59.    private VetoableChangeSupport vetoableChangeSupport;
  60.    private Autoscroller autoscroller;
  61.    private Border border;
  62.    private int flags;
  63.    private transient Rectangle tmpRect;
  64.    transient Component paintingChild;
  65.    public static final int WHEN_FOCUSED = 0;
  66.    public static final int WHEN_ANCESTOR_OF_FOCUSED_COMPONENT = 1;
  67.    public static final int WHEN_IN_FOCUSED_WINDOW = 2;
  68.    public static final int UNDEFINED_CONDITION = -1;
  69.    private static final String KEYBOARD_BINDINGS_KEY = "_KeyboardBindings";
  70.    public static final String TOOL_TIP_TEXT_KEY = "ToolTipText";
  71.    private static final String NEXT_FOCUS = "nextFocus";
  72.    private static final int REQUEST_FOCUS_DISABLED = 0;
  73.    private static final int IS_DOUBLE_BUFFERED = 1;
  74.    private static final int ANCESTOR_USING_BUFFER = 2;
  75.    private static final int IS_PAINTING_TILE = 3;
  76.    private static final int HAS_FOCUS = 4;
  77.    private static final int IS_OPAQUE = 5;
  78.    protected AccessibleContext accessibleContext = null;
  79.    private SwingPropertyChangeSupport changeSupport;
  80.    private Rectangle paintImmediatelyClip = new Rectangle(0, 0, 0, 0);
  81.    // $FF: synthetic field
  82.    static Class class$javax$swing$JComponent$KeyboardState;
  83.  
  84.    public JComponent() {
  85.       ((Component)this).enableEvents(4L);
  86.       this.enableSerialization();
  87.    }
  88.  
  89.    void _paintImmediately(int var1, int var2, int var3, int var4) {
  90.       int var12 = 0;
  91.       int var13 = 0;
  92.       boolean var14 = false;
  93.       JComponent var15 = null;
  94.       JComponent var16 = this;
  95.       RepaintManager var17 = RepaintManager.currentManager(this);
  96.       Vector var18 = new Vector(7);
  97.       int var19 = -1;
  98.       int var20 = 0;
  99.       int var11 = 0;
  100.       int var10 = 0;
  101.       byte var9 = 0;
  102.       byte var8 = 0;
  103.       this.paintImmediatelyClip.x = var1;
  104.       this.paintImmediatelyClip.y = var2;
  105.       this.paintImmediatelyClip.width = var3;
  106.       this.paintImmediatelyClip.height = var4;
  107.       boolean var21 = this.alwaysOnTop() && this.isOpaque();
  108.  
  109.       Object var6;
  110.       for(var6 = this; var6 != null && !(var6 instanceof Window) && !(var6 instanceof Applet); var6 = ((Component)var6).getParent()) {
  111.          var18.addElement(var6);
  112.          if (!var21 && var6 instanceof JComponent && !((JComponent)var6).isOptimizedDrawingEnabled()) {
  113.             var16 = (JComponent)var6;
  114.             var19 = var20;
  115.             var13 = 0;
  116.             var12 = 0;
  117.             var14 = false;
  118.          }
  119.  
  120.          ++var20;
  121.          if (var17.isDoubleBufferingEnabled() && var6 instanceof JComponent && ((JComponent)var6).isDoubleBuffered()) {
  122.             var14 = true;
  123.             var15 = (JComponent)var6;
  124.          }
  125.  
  126.          if (!var21) {
  127.             Rectangle var7;
  128.             if (var6 instanceof JComponent) {
  129.                var7 = ((JComponent)var6)._bounds;
  130.             } else {
  131.                var7 = ((Component)var6).getBounds();
  132.             }
  133.  
  134.             var10 = var7.width;
  135.             var11 = var7.height;
  136.             SwingUtilities.computeIntersection(var8, var9, var10, var11, this.paintImmediatelyClip);
  137.             Rectangle var10000 = this.paintImmediatelyClip;
  138.             var10000.x += var7.x;
  139.             var10000 = this.paintImmediatelyClip;
  140.             var10000.y += var7.y;
  141.             var12 += var7.x;
  142.             var13 += var7.y;
  143.          }
  144.       }
  145.  
  146.       if (var6 != null && ((Component)var6).getPeer() != null) {
  147.          if (this.paintImmediatelyClip.width > 0 && this.paintImmediatelyClip.height > 0) {
  148.             Rectangle var40 = this.paintImmediatelyClip;
  149.             var40.x -= var12;
  150.             var40 = this.paintImmediatelyClip;
  151.             var40.y -= var13;
  152.             if (var16 != this) {
  153.                for(int var23 = var19; var23 > 0; --var23) {
  154.                   Component var22 = (Component)var18.elementAt(var23);
  155.                   if (var22 instanceof JComponent) {
  156.                      ((JComponent)var22).setPaintingChild((Component)var18.elementAt(var23 - 1));
  157.                   }
  158.                }
  159.             }
  160.  
  161.             try {
  162.                Graphics var5;
  163.                try {
  164.                   var5 = SwingGraphics.createSwingGraphics(var16.getGraphics());
  165.                } catch (NullPointerException var34) {
  166.                   var5 = null;
  167.                   ((Throwable)var34).printStackTrace();
  168.                }
  169.  
  170.                if (var5 != null) {
  171.                   Image var24;
  172.                   if (var14 && (var24 = var17.getOffscreenBuffer(var15, this.paintImmediatelyClip.width, this.paintImmediatelyClip.height)) != null && var24.getWidth((ImageObserver)null) > 0 && var24.getHeight((ImageObserver)null) > 0) {
  173.                      this.paintWithBuffer(var16, var5, this.paintImmediatelyClip, var24);
  174.                      var5.dispose();
  175.                      return;
  176.                   }
  177.  
  178.                   var5.setClip(this.paintImmediatelyClip.x, this.paintImmediatelyClip.y, this.paintImmediatelyClip.width, this.paintImmediatelyClip.height);
  179.  
  180.                   try {
  181.                      var16.paint(var5);
  182.                      return;
  183.                   } finally {
  184.                      var5.dispose();
  185.                   }
  186.                }
  187.  
  188.                System.err.println("In paintImmediately null graphics");
  189.             } finally {
  190.                if (var16 != this) {
  191.                   for(int var25 = var19; var25 > 0; --var25) {
  192.                      Component var38 = (Component)var18.elementAt(var25);
  193.                      if (var38 instanceof JComponent) {
  194.                         ((JComponent)var38).setPaintingChild((Component)null);
  195.                      }
  196.                   }
  197.                }
  198.  
  199.                var18.removeAllElements();
  200.             }
  201.  
  202.          }
  203.       }
  204.    }
  205.  
  206.    // $FF: synthetic method
  207.    static Hashtable access$0() {
  208.       return readObjectCallbacks;
  209.    }
  210.  
  211.    public void addAncestorListener(AncestorListener var1) {
  212.       if (this.ancestorNotifier == null) {
  213.          this.ancestorNotifier = new AncestorNotifier(this);
  214.       }
  215.  
  216.       this.ancestorNotifier.addAncestorListener(var1);
  217.    }
  218.  
  219.    public void addNotify() {
  220.       super.addNotify();
  221.       this.firePropertyChange("ancestor", (Object)null, ((Component)this).getParent());
  222.       Hashtable var1 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  223.       if (var1 != null) {
  224.          Enumeration var2 = var1.keys();
  225.  
  226.          while(var2.hasMoreElements()) {
  227.             KeyStroke var3 = (KeyStroke)var2.nextElement();
  228.             KeyboardBinding var4 = (KeyboardBinding)var1.get(var3);
  229.             if (var4.condition == 2) {
  230.                this.registerWithKeyboardManager(var3);
  231.             }
  232.          }
  233.  
  234.       }
  235.    }
  236.  
  237.    public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
  238.       if (this.changeSupport == null) {
  239.          this.changeSupport = new SwingPropertyChangeSupport(this);
  240.       }
  241.  
  242.       this.changeSupport.addPropertyChangeListener(var1);
  243.    }
  244.  
  245.    public synchronized void addPropertyChangeListener(String var1, PropertyChangeListener var2) {
  246.       if (var2 != null) {
  247.          if (this.changeSupport == null) {
  248.             this.changeSupport = new SwingPropertyChangeSupport(this);
  249.          }
  250.  
  251.          this.changeSupport.addPropertyChangeListener(var1, var2);
  252.       }
  253.    }
  254.  
  255.    public synchronized void addVetoableChangeListener(VetoableChangeListener var1) {
  256.       if (this.vetoableChangeSupport == null) {
  257.          this.vetoableChangeSupport = new VetoableChangeSupport(this);
  258.       }
  259.  
  260.       this.vetoableChangeSupport.addVetoableChangeListener(var1);
  261.    }
  262.  
  263.    private void adjustPaintFlags() {
  264.       Object var1 = null;
  265.  
  266.       for(Container var2 = ((Component)this).getParent(); var2 != null; var2 = ((Component)var2).getParent()) {
  267.          if (var2 instanceof JComponent) {
  268.             JComponent var3 = (JComponent)var2;
  269.             if (var3.getFlag(2)) {
  270.                this.setFlag(2, true);
  271.             }
  272.  
  273.             if (var3.getFlag(3)) {
  274.                this.setFlag(3, true);
  275.             }
  276.             break;
  277.          }
  278.       }
  279.  
  280.    }
  281.  
  282.    boolean alwaysOnTop() {
  283.       return false;
  284.    }
  285.  
  286.    KeyboardBinding bindingForKeyStroke(KeyStroke var1, int var2) {
  287.       KeyboardBinding var5 = null;
  288.       Hashtable var3 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  289.       if (var3 != null) {
  290.          KeyboardBinding var4 = (KeyboardBinding)var3.get(var1);
  291.          if (var4 != null) {
  292.             ActionListener var6 = var4.getAction();
  293.             if (var6 instanceof Action && !((Action)var6).isEnabled()) {
  294.                var6 = null;
  295.             }
  296.  
  297.             if (var6 != null) {
  298.                switch (var4.getCondition()) {
  299.                   case 0:
  300.                      if (var2 == 0) {
  301.                         var5 = var4;
  302.                      }
  303.                      break;
  304.                   case 1:
  305.                      if (var2 == 0 || var2 == 1) {
  306.                         var5 = var4;
  307.                      }
  308.                      break;
  309.                   case 2:
  310.                      if (var2 == 0 || var2 == 2 || var2 == 1) {
  311.                         var5 = var4;
  312.                      }
  313.                }
  314.             }
  315.          }
  316.       }
  317.  
  318.       return var5;
  319.    }
  320.  
  321.    boolean checkIfChildObscuredBySibling() {
  322.       return true;
  323.    }
  324.  
  325.    // $FF: synthetic method
  326.    static Class class$(String var0) {
  327.       try {
  328.          return Class.forName(var0);
  329.       } catch (ClassNotFoundException var2) {
  330.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  331.       }
  332.    }
  333.  
  334.    static final void computeVisibleRect(Component var0, Rectangle var1) {
  335.       Container var2 = var0.getParent();
  336.       Rectangle var3 = var0.getBounds();
  337.       if (var2 != null && !(var2 instanceof Window) && !(var2 instanceof Applet)) {
  338.          computeVisibleRect(var2, var1);
  339.          var1.x -= var3.x;
  340.          var1.y -= var3.y;
  341.          SwingUtilities.computeIntersection(0, 0, var3.width, var3.height, var1);
  342.       } else {
  343.          var1.setBounds(0, 0, var3.width, var3.height);
  344.       }
  345.  
  346.    }
  347.  
  348.    public void computeVisibleRect(Rectangle var1) {
  349.       computeVisibleRect(this, var1);
  350.    }
  351.  
  352.    public boolean contains(int var1, int var2) {
  353.       return this.field_0 != null ? this.field_0.contains(this, var1, var2) : super.contains(var1, var2);
  354.    }
  355.  
  356.    public JToolTip createToolTip() {
  357.       JToolTip var1 = new JToolTip();
  358.       var1.setComponent(this);
  359.       return var1;
  360.    }
  361.  
  362.    void enableSerialization() {
  363.       ((Component)this).addFocusListener(new EnableSerializationFocusListener(this));
  364.    }
  365.  
  366.    public void firePropertyChange(String var1, byte var2, byte var3) {
  367.       if (this.changeSupport != null && var2 != var3) {
  368.          this.changeSupport.firePropertyChange(var1, new Byte(var2), new Byte(var3));
  369.       }
  370.  
  371.    }
  372.  
  373.    public void firePropertyChange(String var1, char var2, char var3) {
  374.       if (this.changeSupport != null && var2 != var3) {
  375.          this.changeSupport.firePropertyChange(var1, new Character(var2), new Character(var3));
  376.       }
  377.  
  378.    }
  379.  
  380.    public void firePropertyChange(String var1, double var2, double var4) {
  381.       if (this.changeSupport != null && var2 != var4) {
  382.          this.changeSupport.firePropertyChange(var1, new Double(var2), new Double(var4));
  383.       }
  384.  
  385.    }
  386.  
  387.    public void firePropertyChange(String var1, float var2, float var3) {
  388.       if (this.changeSupport != null && var2 != var3) {
  389.          this.changeSupport.firePropertyChange(var1, new Float(var2), new Float(var3));
  390.       }
  391.  
  392.    }
  393.  
  394.    public void firePropertyChange(String var1, int var2, int var3) {
  395.       if (this.changeSupport != null && var2 != var3) {
  396.          this.changeSupport.firePropertyChange(var1, new Integer(var2), new Integer(var3));
  397.       }
  398.  
  399.    }
  400.  
  401.    public void firePropertyChange(String var1, long var2, long var4) {
  402.       if (this.changeSupport != null && var2 != var4) {
  403.          this.changeSupport.firePropertyChange(var1, new Long(var2), new Long(var4));
  404.       }
  405.  
  406.    }
  407.  
  408.    protected void firePropertyChange(String var1, Object var2, Object var3) {
  409.       if (this.changeSupport != null) {
  410.          this.changeSupport.firePropertyChange(var1, var2, var3);
  411.       }
  412.  
  413.    }
  414.  
  415.    public void firePropertyChange(String var1, short var2, short var3) {
  416.       if (this.changeSupport != null && var2 != var3) {
  417.          this.changeSupport.firePropertyChange(var1, new Short(var2), new Short(var3));
  418.       }
  419.  
  420.    }
  421.  
  422.    public void firePropertyChange(String var1, boolean var2, boolean var3) {
  423.       if (this.changeSupport != null && var2 != var3) {
  424.          this.changeSupport.firePropertyChange(var1, new Boolean(var2), new Boolean(var3));
  425.       }
  426.  
  427.    }
  428.  
  429.    protected void fireVetoableChange(String var1, Object var2, Object var3) throws PropertyVetoException {
  430.       if (this.vetoableChangeSupport != null) {
  431.          this.vetoableChangeSupport.fireVetoableChange(var1, var2, var3);
  432.       }
  433.    }
  434.  
  435.    public AccessibleContext getAccessibleContext() {
  436.       return this.accessibleContext;
  437.    }
  438.  
  439.    public ActionListener getActionForKeyStroke(KeyStroke var1) {
  440.       Hashtable var2 = this.keyboardBindings();
  441.       if (var2 == null) {
  442.          return null;
  443.       } else {
  444.          synchronized(var2){}
  445.  
  446.          ActionListener var3;
  447.          try {
  448.             KeyboardBinding var6 = (KeyboardBinding)var2.get(var1);
  449.             if (var6 == null) {
  450.                return null;
  451.             }
  452.  
  453.             var3 = var6.getAction();
  454.          } catch (Throwable var8) {
  455.             throw var8;
  456.          }
  457.  
  458.          return var3;
  459.       }
  460.    }
  461.  
  462.    public float getAlignmentX() {
  463.       return this.alignmentX != null ? this.alignmentX : super.getAlignmentX();
  464.    }
  465.  
  466.    public float getAlignmentY() {
  467.       return this.alignmentY != null ? this.alignmentY : super.getAlignmentY();
  468.    }
  469.  
  470.    public boolean getAutoscrolls() {
  471.       return this.autoscroller != null;
  472.    }
  473.  
  474.    public Border getBorder() {
  475.       return this.border;
  476.    }
  477.  
  478.    public Rectangle getBounds(Rectangle var1) {
  479.       if (var1 == null) {
  480.          return new Rectangle(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  481.       } else {
  482.          var1.setBounds(this.getX(), this.getY(), this.getWidth(), this.getHeight());
  483.          return var1;
  484.       }
  485.    }
  486.  
  487.    private Dictionary getClientProperties() {
  488.       if (this.clientProperties == null) {
  489.          this.clientProperties = new Hashtable(2);
  490.       }
  491.  
  492.       return this.clientProperties;
  493.    }
  494.  
  495.    public final Object getClientProperty(Object var1) {
  496.       return this.clientProperties == null ? null : this.getClientProperties().get(var1);
  497.    }
  498.  
  499.    protected Graphics getComponentGraphics(Graphics var1) {
  500.       Object var2 = var1;
  501.       if (this.field_0 != null && DebugGraphics.debugComponentCount() != 0 && this.shouldDebugGraphics() != 0 && !(var1 instanceof DebugGraphics)) {
  502.          if (var1 instanceof SwingGraphics) {
  503.             if (!(((SwingGraphics)var1).subGraphics() instanceof DebugGraphics)) {
  504.                DebugGraphics var3 = new DebugGraphics(((SwingGraphics)var1).subGraphics(), this);
  505.                var2 = SwingGraphics.createSwingGraphics(var3);
  506.             }
  507.          } else {
  508.             var2 = new DebugGraphics(var1, this);
  509.          }
  510.       }
  511.  
  512.       ((Graphics)var2).setColor(((Component)this).getForeground());
  513.       ((Graphics)var2).setFont(((Component)this).getFont());
  514.       return (Graphics)var2;
  515.    }
  516.  
  517.    public int getConditionForKeyStroke(KeyStroke var1) {
  518.       Hashtable var2 = this.keyboardBindings();
  519.       if (var2 == null) {
  520.          return -1;
  521.       } else {
  522.          synchronized(var2){}
  523.  
  524.          int var3;
  525.          try {
  526.             KeyboardBinding var6 = (KeyboardBinding)var2.get(var1);
  527.             if (var6 == null) {
  528.                return -1;
  529.             }
  530.  
  531.             var3 = var6.getCondition();
  532.          } catch (Throwable var8) {
  533.             throw var8;
  534.          }
  535.  
  536.          return var3;
  537.       }
  538.    }
  539.  
  540.    public int getDebugGraphicsOptions() {
  541.       return DebugGraphics.getDebugOptions(this);
  542.    }
  543.  
  544.    private boolean getFlag(int var1) {
  545.       int var2 = 1 << var1;
  546.       return (this.flags & var2) == var2;
  547.    }
  548.  
  549.    public Graphics getGraphics() {
  550.       if (this.shouldDebugGraphics() != 0) {
  551.          DebugGraphics var1 = new DebugGraphics(super.getGraphics(), this);
  552.          return var1;
  553.       } else {
  554.          return super.getGraphics();
  555.       }
  556.    }
  557.  
  558.    public int getHeight() {
  559.       return this._bounds.height;
  560.    }
  561.  
  562.    public Insets getInsets() {
  563.       return this.border != null ? this.border.getBorderInsets(this) : super.getInsets();
  564.    }
  565.  
  566.    public Insets getInsets(Insets var1) {
  567.       if (this.border != null) {
  568.          return this.border instanceof AbstractBorder ? ((AbstractBorder)this.border).getBorderInsets(this, var1) : this.border.getBorderInsets(this);
  569.       } else {
  570.          var1.left = var1.top = var1.right = var1.bottom = 0;
  571.          return var1;
  572.       }
  573.    }
  574.  
  575.    public Point getLocation(Point var1) {
  576.       if (var1 == null) {
  577.          return new Point(this.getX(), this.getY());
  578.       } else {
  579.          var1.setLocation(this.getX(), this.getY());
  580.          return var1;
  581.       }
  582.    }
  583.  
  584.    public Dimension getMaximumSize() {
  585.       if (this.maximumSize != null) {
  586.          return this.maximumSize;
  587.       } else {
  588.          Dimension var1 = null;
  589.          if (this.field_0 != null) {
  590.             var1 = this.field_0.getMaximumSize(this);
  591.          }
  592.  
  593.          return var1 != null ? var1 : super.getMaximumSize();
  594.       }
  595.    }
  596.  
  597.    public Dimension getMinimumSize() {
  598.       if (this.minimumSize != null) {
  599.          return this.minimumSize;
  600.       } else {
  601.          Dimension var1 = null;
  602.          if (this.field_0 != null) {
  603.             var1 = this.field_0.getMinimumSize(this);
  604.          }
  605.  
  606.          return var1 != null ? var1 : super.getMinimumSize();
  607.       }
  608.    }
  609.  
  610.    public Component getNextFocusableComponent() {
  611.       return (Component)this.getClientProperty("nextFocus");
  612.    }
  613.  
  614.    public Dimension getPreferredSize() {
  615.       if (this.preferredSize != null) {
  616.          return this.preferredSize;
  617.       } else {
  618.          Dimension var1 = null;
  619.          if (this.field_0 != null) {
  620.             var1 = this.field_0.getPreferredSize(this);
  621.          }
  622.  
  623.          return var1 != null ? var1 : super.getPreferredSize();
  624.       }
  625.    }
  626.  
  627.    public KeyStroke[] getRegisteredKeyStrokes() {
  628.       Hashtable var1 = this.keyboardBindings();
  629.       if (var1 == null) {
  630.          return new KeyStroke[0];
  631.       } else {
  632.          synchronized(var1){}
  633.  
  634.          KeyStroke[] var2;
  635.          try {
  636.             var2 = new KeyStroke[var1.size()];
  637.             int var3 = 0;
  638.  
  639.             for(Enumeration var4 = var1.keys(); var4.hasMoreElements(); var2[var3++] = (KeyStroke)var4.nextElement()) {
  640.             }
  641.          } catch (Throwable var7) {
  642.             throw var7;
  643.          }
  644.  
  645.          return var2;
  646.       }
  647.    }
  648.  
  649.    public JRootPane getRootPane() {
  650.       return SwingUtilities.getRootPane(this);
  651.    }
  652.  
  653.    public Dimension getSize(Dimension var1) {
  654.       if (var1 == null) {
  655.          return new Dimension(this.getWidth(), this.getHeight());
  656.       } else {
  657.          var1.setSize(this.getWidth(), this.getHeight());
  658.          return var1;
  659.       }
  660.    }
  661.  
  662.    public Point getToolTipLocation(MouseEvent var1) {
  663.       return null;
  664.    }
  665.  
  666.    public String getToolTipText() {
  667.       return (String)this.getClientProperty("ToolTipText");
  668.    }
  669.  
  670.    public String getToolTipText(MouseEvent var1) {
  671.       return this.getToolTipText();
  672.    }
  673.  
  674.    public Container getTopLevelAncestor() {
  675.       for(Object var1 = this; var1 != null; var1 = ((Component)var1).getParent()) {
  676.          if (var1 instanceof Window || var1 instanceof Applet) {
  677.             return (Container)var1;
  678.          }
  679.       }
  680.  
  681.       return null;
  682.    }
  683.  
  684.    public String getUIClassID() {
  685.       return "ComponentUI";
  686.    }
  687.  
  688.    public Rectangle getVisibleRect() {
  689.       Rectangle var1 = new Rectangle();
  690.       this.computeVisibleRect(var1);
  691.       return var1;
  692.    }
  693.  
  694.    public int getWidth() {
  695.       return this._bounds.width;
  696.    }
  697.  
  698.    public int getX() {
  699.       return this._bounds.x;
  700.    }
  701.  
  702.    public int getY() {
  703.       return this._bounds.y;
  704.    }
  705.  
  706.    public void grabFocus() {
  707.       super.requestFocus();
  708.    }
  709.  
  710.    public boolean hasFocus() {
  711.       return this.getFlag(4);
  712.    }
  713.  
  714.    public boolean isDoubleBuffered() {
  715.       return this.getFlag(1);
  716.    }
  717.  
  718.    public boolean isFocusCycleRoot() {
  719.       return false;
  720.    }
  721.  
  722.    public boolean isFocusTraversable() {
  723.       boolean var1 = false;
  724.       synchronized(this){}
  725.  
  726.       Hashtable var2;
  727.       try {
  728.          var2 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  729.       } catch (Throwable var11) {
  730.          throw var11;
  731.       }
  732.  
  733.       if (var2 != null) {
  734.          synchronized(var2){}
  735.  
  736.          try {
  737.             Enumeration var5 = var2.keys();
  738.  
  739.             while(var5.hasMoreElements()) {
  740.                KeyboardBinding var6 = (KeyboardBinding)var2.get(var5.nextElement());
  741.                if (var6.getCondition() == 0) {
  742.                   var1 = true;
  743.                   break;
  744.                }
  745.             }
  746.          } catch (Throwable var12) {
  747.             throw var12;
  748.          }
  749.       }
  750.  
  751.       return var1;
  752.    }
  753.  
  754.    public static boolean isLightweightComponent(Component var0) {
  755.       return var0.getPeer() instanceof LightweightPeer;
  756.    }
  757.  
  758.    public boolean isManagingFocus() {
  759.       return false;
  760.    }
  761.  
  762.    public boolean isOpaque() {
  763.       return this.getFlag(5);
  764.    }
  765.  
  766.    public boolean isOptimizedDrawingEnabled() {
  767.       return true;
  768.    }
  769.  
  770.    public boolean isPaintingTile() {
  771.       return this.getFlag(3);
  772.    }
  773.  
  774.    public boolean isRequestFocusEnabled() {
  775.       return !this.getFlag(0);
  776.    }
  777.  
  778.    public boolean isValidateRoot() {
  779.       return false;
  780.    }
  781.  
  782.    private Hashtable keyboardBindings() {
  783.       synchronized(this){}
  784.  
  785.       Hashtable var1;
  786.       try {
  787.          var1 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  788.       } catch (Throwable var4) {
  789.          throw var4;
  790.       }
  791.  
  792.       return var1;
  793.    }
  794.  
  795.    public void paint(Graphics var1) {
  796.       boolean var2 = false;
  797.       if (this.getWidth() > 0 && this.getHeight() > 0) {
  798.          Graphics var3 = this.getComponentGraphics(var1);
  799.          Graphics var4 = SwingGraphics.createSwingGraphics(var3);
  800.  
  801.          try {
  802.             Object var7 = null;
  803.             RepaintManager var8 = RepaintManager.currentManager(this);
  804.             GraphicsWrapper var9 = (GraphicsWrapper)var4;
  805.             int var10 = var9.getClipX();
  806.             int var11 = var9.getClipY();
  807.             int var12 = var9.getClipWidth();
  808.             int var13 = var9.getClipHeight();
  809.             if (var12 > this.getWidth()) {
  810.                var12 = this.getWidth();
  811.             }
  812.  
  813.             if (var13 > this.getHeight()) {
  814.                var13 = this.getHeight();
  815.             }
  816.  
  817.             if (((Component)this).getParent() != null && !(((Component)this).getParent() instanceof JComponent)) {
  818.                this.adjustPaintFlags();
  819.                var2 = true;
  820.             }
  821.  
  822.             Image var29;
  823.             if (var8.isDoubleBufferingEnabled() && !this.getFlag(2) && this.isDoubleBuffered() && (var29 = var8.getOffscreenBuffer(this, var12, var13)) != null && var29.getWidth((ImageObserver)null) > 0 && var29.getHeight((ImageObserver)null) > 0) {
  824.                Graphics var20 = SwingGraphics.createSwingGraphics(var29.getGraphics());
  825.  
  826.                try {
  827.                   var20.translate(-var10, -var11);
  828.                   int var14 = var29.getWidth((ImageObserver)null);
  829.                   int var15 = var29.getHeight((ImageObserver)null);
  830.                   if (var14 > var12) {
  831.                      var14 = var12;
  832.                   }
  833.  
  834.                   if (var15 > var13) {
  835.                      var15 = var13;
  836.                   }
  837.  
  838.                   this.setFlag(2, true);
  839.                   this.setFlag(3, true);
  840.                   int var16 = 0;
  841.  
  842.                   for(int var18 = var12; var16 < var18; var16 += var14) {
  843.                      int var17 = 0;
  844.  
  845.                      for(int var19 = var13; var17 < var19; var17 += var15) {
  846.                         if (var17 + var15 >= var19 && var16 + var14 >= var18) {
  847.                            this.setFlag(3, false);
  848.                         }
  849.  
  850.                         var20.translate(-var16, -var17);
  851.                         var20.setClip(var10 + var16, var11 + var17, var14, var15);
  852.                         if (!this.rectangleIsObscured(var10, var11, var14, var15)) {
  853.                            this.paintComponent(var20);
  854.                            this.paintBorder(var20);
  855.                         }
  856.  
  857.                         this.paintChildren(var20);
  858.                         var4.drawImage(var29, var10 + var16, var11 + var17, this);
  859.                         var20.translate(var16, var17);
  860.                      }
  861.                   }
  862.                } finally {
  863.                   this.setFlag(2, false);
  864.                   this.setFlag(3, false);
  865.                   var20.dispose();
  866.                }
  867.             } else {
  868.                if (!this.rectangleIsObscured(var10, var11, var12, var13)) {
  869.                   this.paintComponent(var4);
  870.                   this.paintBorder(var4);
  871.                }
  872.  
  873.                this.paintChildren(var4);
  874.             }
  875.          } finally {
  876.             var4.dispose();
  877.             if (var2) {
  878.                this.setFlag(2, false);
  879.                this.setFlag(3, false);
  880.             }
  881.  
  882.          }
  883.  
  884.       }
  885.    }
  886.  
  887.    protected void paintBorder(Graphics var1) {
  888.       Border var2 = this.getBorder();
  889.       if (var2 != null) {
  890.          var2.paintBorder(this, var1, 0, 0, this.getWidth(), this.getHeight());
  891.       }
  892.  
  893.    }
  894.  
  895.    protected void paintChildren(Graphics var1) {
  896.       Graphics var3 = null;
  897.  
  898.       try {
  899.          Object var6 = ((Component)this).getTreeLock();
  900.          synchronized(var6){}
  901.  
  902.          try {
  903.             int var8 = ((Container)this).getComponentCount() - 1;
  904.             if (var8 >= 0) {
  905.                var3 = SwingGraphics.createSwingGraphics(var1);
  906.                if (this.paintingChild != null && this.paintingChild instanceof JComponent && ((JComponent)this.paintingChild).isOpaque()) {
  907.                   while(var8 >= 0 && ((Container)this).getComponent(var8) != this.paintingChild) {
  908.                      --var8;
  909.                   }
  910.                }
  911.  
  912.                if (this.tmpRect == null) {
  913.                   this.tmpRect = new Rectangle();
  914.                }
  915.  
  916.                for(boolean var9 = !this.isOptimizedDrawingEnabled() && this.checkIfChildObscuredBySibling(); var8 >= 0; --var8) {
  917.                   Component var10 = ((Container)this).getComponent(var8);
  918.                   if (var10 != null && isLightweightComponent(var10) && var10.isVisible()) {
  919.                      boolean var2 = var10 instanceof JComponent;
  920.                      Rectangle var11;
  921.                      if (var2) {
  922.                         var11 = this.tmpRect;
  923.                         ((JComponent)var10).getBounds(var11);
  924.                      } else {
  925.                         var11 = var10.getBounds();
  926.                      }
  927.  
  928.                      boolean var12 = ((GraphicsWrapper)var3).isClipIntersecting(var11);
  929.                      if (var12) {
  930.                         if (var9 && var8 > 0) {
  931.                            int var13 = var11.x;
  932.                            int var14 = var11.y;
  933.                            int var15 = var11.width;
  934.                            int var16 = var11.height;
  935.                            GraphicsWrapper var17 = (GraphicsWrapper)var3;
  936.                            SwingUtilities.computeIntersection(var17.getClipX(), var17.getClipY(), var17.getClipWidth(), var17.getClipHeight(), var11);
  937.                            if (this.rectangleIsObscuredBySibling(var8, var11.x, var11.y, var11.width, var11.height)) {
  938.                               continue;
  939.                            }
  940.  
  941.                            var11.x = var13;
  942.                            var11.y = var14;
  943.                            var11.width = var15;
  944.                            var11.height = var16;
  945.                         }
  946.  
  947.                         Graphics var30 = SwingGraphics.createSwingGraphics(var3, var11.x, var11.y, var11.width, var11.height);
  948.                         var30.setColor(var10.getForeground());
  949.                         var30.setFont(var10.getFont());
  950.                         boolean var31 = false;
  951.  
  952.                         try {
  953.                            if (var2) {
  954.                               if (this.getFlag(2)) {
  955.                                  ((JComponent)var10).setFlag(2, true);
  956.                                  var31 = true;
  957.                               }
  958.  
  959.                               if (this.getFlag(3)) {
  960.                                  ((JComponent)var10).setFlag(3, true);
  961.                                  var31 = true;
  962.                               }
  963.  
  964.                               ((JComponent)var10).paint(var30);
  965.                            } else {
  966.                               var10.paint(var30);
  967.                            }
  968.                         } finally {
  969.                            var30.dispose();
  970.                            if (var31) {
  971.                               ((JComponent)var10).setFlag(2, false);
  972.                               ((JComponent)var10).setFlag(3, false);
  973.                            }
  974.  
  975.                         }
  976.                      }
  977.                   }
  978.                }
  979.  
  980.                return;
  981.             }
  982.          } catch (Throwable var28) {
  983.             throw var28;
  984.          }
  985.       } finally {
  986.          if (var3 != null) {
  987.             var3.dispose();
  988.          }
  989.  
  990.       }
  991.  
  992.    }
  993.  
  994.    protected void paintComponent(Graphics var1) {
  995.       if (this.field_0 != null) {
  996.          Graphics var2 = SwingGraphics.createSwingGraphics(var1);
  997.  
  998.          try {
  999.             this.field_0.update(var2, this);
  1000.          } finally {
  1001.             var2.dispose();
  1002.          }
  1003.       }
  1004.  
  1005.    }
  1006.  
  1007.    public void paintImmediately(int var1, int var2, int var3, int var4) {
  1008.       Object var5 = this;
  1009.       if (((Component)this).isShowing()) {
  1010.          while(!((JComponent)var5).isOpaque()) {
  1011.             Container var6 = ((Component)var5).getParent();
  1012.             if (var6 == null) {
  1013.                break;
  1014.             }
  1015.  
  1016.             Rectangle var7;
  1017.             if (var5 instanceof JComponent) {
  1018.                var7 = ((JComponent)var5)._bounds;
  1019.             } else {
  1020.                var7 = ((Component)var5).getBounds();
  1021.             }
  1022.  
  1023.             var1 += var7.x;
  1024.             var2 += var7.y;
  1025.             var5 = var6;
  1026.             if (!(var6 instanceof JComponent)) {
  1027.                break;
  1028.             }
  1029.          }
  1030.  
  1031.          if (var5 instanceof JComponent) {
  1032.             ((JComponent)var5)._paintImmediately(var1, var2, var3, var4);
  1033.          } else {
  1034.             ((Component)var5).repaint(var1, var2, var3, var4);
  1035.          }
  1036.  
  1037.       }
  1038.    }
  1039.  
  1040.    public void paintImmediately(Rectangle var1) {
  1041.       this.paintImmediately(var1.x, var1.y, var1.width, var1.height);
  1042.    }
  1043.  
  1044.    private void paintWithBuffer(JComponent var1, Graphics var2, Rectangle var3, Image var4) {
  1045.       Graphics var5 = SwingGraphics.createSwingGraphics(var4.getGraphics());
  1046.       int var6 = var4.getWidth((ImageObserver)null);
  1047.       int var7 = var4.getHeight((ImageObserver)null);
  1048.       if (var6 > var3.width) {
  1049.          var6 = var3.width;
  1050.       }
  1051.  
  1052.       if (var7 > var3.height) {
  1053.          var7 = var3.height;
  1054.       }
  1055.  
  1056.       try {
  1057.          var1.setFlag(2, true);
  1058.          var1.setFlag(3, true);
  1059.          int var8 = var3.x;
  1060.  
  1061.          for(int var10 = var3.x + var3.width; var8 < var10; var8 += var6) {
  1062.             int var9 = var3.y;
  1063.  
  1064.             for(int var11 = var3.y + var3.height; var9 < var11; var9 += var7) {
  1065.                if (var9 + var7 >= var11 && var8 + var6 >= var10) {
  1066.                   var1.setFlag(3, false);
  1067.                }
  1068.  
  1069.                var5.translate(-var8, -var9);
  1070.                var5.setClip(var8, var9, var6, var7);
  1071.                var1.paint(var5);
  1072.                var2.setClip(var8, var9, var6, var7);
  1073.                var2.drawImage(var4, var8, var9, var1);
  1074.                var5.translate(var8, var9);
  1075.             }
  1076.          }
  1077.       } finally {
  1078.          var1.setFlag(2, false);
  1079.          var1.setFlag(3, false);
  1080.          var5.dispose();
  1081.       }
  1082.  
  1083.    }
  1084.  
  1085.    protected String paramString() {
  1086.       String var1 = this.preferredSize != null ? this.preferredSize.toString() : "";
  1087.       String var2 = this.minimumSize != null ? this.minimumSize.toString() : "";
  1088.       String var3 = this.maximumSize != null ? this.maximumSize.toString() : "";
  1089.       String var4 = this.border != null ? this.border.toString() : "";
  1090.       return super.paramString() + ",alignmentX=" + this.alignmentX + ",alignmentY=" + this.alignmentY + ",border=" + var4 + ",flags=" + this.flags + ",maximumSize=" + var3 + ",minimumSize=" + var2 + ",preferredSize=" + var1;
  1091.    }
  1092.  
  1093.    protected void processComponentKeyEvent(KeyEvent var1) {
  1094.    }
  1095.  
  1096.    protected void processFocusEvent(FocusEvent var1) {
  1097.       switch (((AWTEvent)var1).getID()) {
  1098.          case 1004:
  1099.             this.setFlag(4, true);
  1100.             break;
  1101.          case 1005:
  1102.             this.setFlag(4, false);
  1103.       }
  1104.  
  1105.       super.processFocusEvent(var1);
  1106.    }
  1107.  
  1108.    boolean processKeyBinding(KeyEvent var1, int var2, boolean var3) {
  1109.       boolean var7 = !var3;
  1110.       Object var8 = null;
  1111.       if (((Component)this).isEnabled()) {
  1112.          KeyboardBinding var11;
  1113.          if (((AWTEvent)var1).getID() == 400) {
  1114.             var11 = this.bindingForKeyStroke(KeyStroke.getKeyStroke(var1.getKeyChar()), var2);
  1115.          } else {
  1116.             var11 = this.bindingForKeyStroke(KeyStroke.getKeyStroke(var1.getKeyCode(), ((InputEvent)var1).getModifiers(), var7), var2);
  1117.          }
  1118.  
  1119.          if (var11 != null) {
  1120.             ActionListener var10 = var11.getAction();
  1121.             if (var10 != null) {
  1122.                var10.actionPerformed(new ActionEvent(this, 1001, var11.getCommand()));
  1123.                return true;
  1124.             }
  1125.          }
  1126.       }
  1127.  
  1128.       return false;
  1129.    }
  1130.  
  1131.    boolean processKeyBindings(KeyEvent var1, boolean var2) {
  1132.       if (this.processKeyBinding(var1, 0, var2)) {
  1133.          return true;
  1134.       } else {
  1135.          Container var3;
  1136.          for(var3 = ((Component)this).getParent(); var3 != null && !(var3 instanceof Window) && !(var3 instanceof Applet) && !(var3 instanceof JInternalFrame); var3 = ((Component)var3).getParent()) {
  1137.             if (var3 instanceof JComponent && ((JComponent)var3).processKeyBinding(var1, 1, var2)) {
  1138.                return true;
  1139.             }
  1140.          }
  1141.  
  1142.          return var3 != null ? processKeyBindingsForAllComponents(var1, var3, var2) : false;
  1143.       }
  1144.    }
  1145.  
  1146.    static boolean processKeyBindingsForAllComponents(KeyEvent var0, Container var1, boolean var2) {
  1147.       return KeyboardManager.getCurrentManager().fireKeyboardAction(var0, var2, var1);
  1148.    }
  1149.  
  1150.    protected void processKeyEvent(KeyEvent var1) {
  1151.       boolean var3 = false;
  1152.       if (FocusManager.isFocusManagerEnabled()) {
  1153.          FocusManager var4 = FocusManager.getCurrentManager();
  1154.          var4.processKeyEvent(this, var1);
  1155.          if (((InputEvent)var1).isConsumed()) {
  1156.             return;
  1157.          }
  1158.       }
  1159.  
  1160.       super.processKeyEvent(var1);
  1161.       if (!((InputEvent)var1).isConsumed()) {
  1162.          this.processComponentKeyEvent(var1);
  1163.       }
  1164.  
  1165.       if (((AWTEvent)var1).getID() == 401) {
  1166.          var3 = true;
  1167.          if (!javax.swing.JComponent.KeyboardState.keyIsPressed(var1.getKeyCode())) {
  1168.             javax.swing.JComponent.KeyboardState.registerKeyPressed(var1.getKeyCode());
  1169.          }
  1170.       } else if (((AWTEvent)var1).getID() == 402) {
  1171.          if (javax.swing.JComponent.KeyboardState.keyIsPressed(var1.getKeyCode())) {
  1172.             var3 = true;
  1173.             javax.swing.JComponent.KeyboardState.registerKeyReleased(var1.getKeyCode());
  1174.          }
  1175.       } else if (((AWTEvent)var1).getID() == 400) {
  1176.          var3 = true;
  1177.       }
  1178.  
  1179.       if (!((InputEvent)var1).isConsumed()) {
  1180.          if (var3 && ((AWTEvent)var1).getID() == 401) {
  1181.             boolean var6 = this.processKeyBindings(var1, true);
  1182.             if (var6) {
  1183.                ((InputEvent)var1).consume();
  1184.             }
  1185.          } else if (var3 && ((AWTEvent)var1).getID() == 402) {
  1186.             boolean var5 = this.processKeyBindings(var1, false);
  1187.             if (var5) {
  1188.                ((InputEvent)var1).consume();
  1189.             }
  1190.          } else if (var3 && ((AWTEvent)var1).getID() == 400) {
  1191.             boolean var2 = this.processKeyBindings(var1, false);
  1192.             if (var2) {
  1193.                ((InputEvent)var1).consume();
  1194.             }
  1195.          }
  1196.  
  1197.       }
  1198.    }
  1199.  
  1200.    protected void processMouseMotionEvent(MouseEvent var1) {
  1201.       boolean var2 = true;
  1202.       if (this.autoscroller != null && ((AWTEvent)var1).getID() == 506) {
  1203.          var2 = this.autoscroller.timer.isRunning() ^ true;
  1204.          this.autoscroller.mouseDragged(var1);
  1205.       }
  1206.  
  1207.       if (var2) {
  1208.          super.processMouseMotionEvent(var1);
  1209.       }
  1210.  
  1211.    }
  1212.  
  1213.    public final void putClientProperty(Object var1, Object var2) {
  1214.       Object var3 = this.getClientProperties().get(var1);
  1215.       if (var2 != null) {
  1216.          this.getClientProperties().put(var1, var2);
  1217.       } else {
  1218.          this.getClientProperties().remove(var1);
  1219.       }
  1220.  
  1221.       this.firePropertyChange(var1.toString(), var3, var2);
  1222.    }
  1223.  
  1224.    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {
  1225.       var1.defaultReadObject();
  1226.       ReadObjectCallback var2 = (ReadObjectCallback)readObjectCallbacks.get(var1);
  1227.       if (var2 == null) {
  1228.          try {
  1229.             readObjectCallbacks.put(var1, var2 = new ReadObjectCallback(this, var1));
  1230.          } catch (Exception var4) {
  1231.             throw new IOException(((Throwable)var4).toString());
  1232.          }
  1233.       }
  1234.  
  1235.       javax.swing.JComponent.ReadObjectCallback.access$0(var2, this);
  1236.       if (this.getToolTipText() != null) {
  1237.          ToolTipManager.sharedInstance().registerComponent(this);
  1238.       }
  1239.  
  1240.    }
  1241.  
  1242.    boolean rectangleIsObscured(int var1, int var2, int var3, int var4) {
  1243.       int var5 = ((Container)this).getComponentCount();
  1244.  
  1245.       for(int var6 = 0; var6 < var5; ++var6) {
  1246.          Component var7 = ((Container)this).getComponent(var6);
  1247.          Rectangle var8;
  1248.          if (var7 instanceof JComponent) {
  1249.             var8 = ((JComponent)var7)._bounds;
  1250.          } else {
  1251.             var8 = var7.getBounds();
  1252.          }
  1253.  
  1254.          if (var1 >= var8.x && var1 + var3 <= var8.x + var8.width && var2 >= var8.y && var2 + var4 <= var8.y + var8.height && var7.isVisible()) {
  1255.             if (var7 instanceof JComponent) {
  1256.                return ((JComponent)var7).isOpaque();
  1257.             }
  1258.  
  1259.             return false;
  1260.          }
  1261.       }
  1262.  
  1263.       return false;
  1264.    }
  1265.  
  1266.    boolean rectangleIsObscuredBySibling(int var1, int var2, int var3, int var4, int var5) {
  1267.       for(int var6 = var1 - 1; var6 >= 0; --var6) {
  1268.          Component var7 = ((Container)this).getComponent(var6);
  1269.          if (var7.isVisible()) {
  1270.             Rectangle var8;
  1271.             if (var7 instanceof JComponent) {
  1272.                if (!((JComponent)var7).isOpaque()) {
  1273.                   continue;
  1274.                }
  1275.  
  1276.                var8 = ((JComponent)var7).getBounds(this.tmpRect);
  1277.             } else {
  1278.                var8 = var7.getBounds();
  1279.             }
  1280.  
  1281.             if (var2 >= var8.x && var2 + var4 <= var8.x + var8.width && var3 >= var8.y && var3 + var5 <= var8.y + var8.height) {
  1282.                return true;
  1283.             }
  1284.          }
  1285.       }
  1286.  
  1287.       return false;
  1288.    }
  1289.  
  1290.    public void registerKeyboardAction(ActionListener var1, String var2, KeyStroke var3, int var4) {
  1291.       boolean var6 = false;
  1292.       synchronized(this){}
  1293.  
  1294.       Hashtable var5;
  1295.       try {
  1296.          var5 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  1297.          if (var5 == null) {
  1298.             var5 = new Hashtable();
  1299.             this.putClientProperty("_KeyboardBindings", var5);
  1300.             var6 = true;
  1301.          }
  1302.       } catch (Throwable var13) {
  1303.          throw var13;
  1304.       }
  1305.  
  1306.       synchronized(var5){}
  1307.  
  1308.       try {
  1309.          var5.put(var3, new KeyboardBinding(var1, var2, var3, var4));
  1310.       } catch (Throwable var12) {
  1311.          throw var12;
  1312.       }
  1313.  
  1314.       if (var6) {
  1315.          ((Component)this).enableEvents(8L);
  1316.       }
  1317.  
  1318.       if (((Component)this).getParent() != null && var4 == 2) {
  1319.          this.registerWithKeyboardManager(var3);
  1320.       }
  1321.  
  1322.    }
  1323.  
  1324.    public void registerKeyboardAction(ActionListener var1, KeyStroke var2, int var3) {
  1325.       this.registerKeyboardAction(var1, (String)null, var2, var3);
  1326.    }
  1327.  
  1328.    void registerWithKeyboardManager(KeyStroke var1) {
  1329.       KeyboardManager.getCurrentManager().registerKeyStroke(var1, this);
  1330.    }
  1331.  
  1332.    public void removeAncestorListener(AncestorListener var1) {
  1333.       if (this.ancestorNotifier != null) {
  1334.          this.ancestorNotifier.removeAncestorListener(var1);
  1335.          if (this.ancestorNotifier.listenerList.getListenerList().length == 0) {
  1336.             this.ancestorNotifier.removeAllListeners();
  1337.             this.ancestorNotifier = null;
  1338.          }
  1339.  
  1340.       }
  1341.    }
  1342.  
  1343.    public void removeNotify() {
  1344.       super.removeNotify();
  1345.       this.firePropertyChange("ancestor", ((Component)this).getParent(), (Object)null);
  1346.       Hashtable var1 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  1347.       if (var1 != null) {
  1348.          Enumeration var2 = var1.keys();
  1349.  
  1350.          while(var2.hasMoreElements()) {
  1351.             KeyStroke var3 = (KeyStroke)var2.nextElement();
  1352.             KeyboardBinding var4 = (KeyboardBinding)var1.get(var3);
  1353.             if (var4.condition == 2) {
  1354.                this.unregisterWithKeyboardManager(var3);
  1355.             }
  1356.          }
  1357.  
  1358.       }
  1359.    }
  1360.  
  1361.    public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
  1362.       if (this.changeSupport != null) {
  1363.          this.changeSupport.removePropertyChangeListener(var1);
  1364.       }
  1365.  
  1366.    }
  1367.  
  1368.    public synchronized void removePropertyChangeListener(String var1, PropertyChangeListener var2) {
  1369.       if (var2 != null) {
  1370.          if (this.changeSupport != null) {
  1371.             this.changeSupport.removePropertyChangeListener(var1, var2);
  1372.          }
  1373.       }
  1374.    }
  1375.  
  1376.    public synchronized void removeVetoableChangeListener(VetoableChangeListener var1) {
  1377.       if (this.vetoableChangeSupport != null) {
  1378.          this.vetoableChangeSupport.removeVetoableChangeListener(var1);
  1379.       }
  1380.    }
  1381.  
  1382.    public void repaint(long var1, int var3, int var4, int var5, int var6) {
  1383.       RepaintManager.currentManager(this).addDirtyRegion(this, var3, var4, var5, var6);
  1384.    }
  1385.  
  1386.    public void repaint(Rectangle var1) {
  1387.       this.repaint(0L, var1.x, var1.y, var1.width, var1.height);
  1388.    }
  1389.  
  1390.    public boolean requestDefaultFocus() {
  1391.       Component[] var1 = ((Container)this).getComponents();
  1392.  
  1393.       for(int var2 = 0; var2 < var1.length; ++var2) {
  1394.          if (var1[var2].isFocusTraversable()) {
  1395.             if (var1[var2] instanceof JComponent) {
  1396.                ((JComponent)var1[var2]).grabFocus();
  1397.             } else {
  1398.                var1[var2].requestFocus();
  1399.             }
  1400.  
  1401.             return true;
  1402.          }
  1403.  
  1404.          if (var1[var2] instanceof JComponent && !((JComponent)var1[var2]).isManagingFocus() && ((JComponent)var1[var2]).requestDefaultFocus()) {
  1405.             return true;
  1406.          }
  1407.       }
  1408.  
  1409.       return false;
  1410.    }
  1411.  
  1412.    public void requestFocus() {
  1413.       FocusManager var1 = FocusManager.getCurrentManager();
  1414.       if (var1 instanceof DefaultFocusManager) {
  1415.          ((DefaultFocusManager)var1).clearHistory();
  1416.       }
  1417.  
  1418.       if (this.isRequestFocusEnabled()) {
  1419.          super.requestFocus();
  1420.       }
  1421.  
  1422.    }
  1423.  
  1424.    public void resetKeyboardActions() {
  1425.       synchronized(this){}
  1426.  
  1427.       try {
  1428.          Hashtable var3 = (Hashtable)this.getClientProperty("_KeyboardBindings");
  1429.          if (var3 != null) {
  1430.             var3.clear();
  1431.          }
  1432.       } catch (Throwable var5) {
  1433.          throw var5;
  1434.       }
  1435.  
  1436.    }
  1437.  
  1438.    public void reshape(int var1, int var2, int var3, int var4) {
  1439.       if (((Component)this).isShowing()) {
  1440.          if (this._bounds.x + this._bounds.width > var1 && this._bounds.y + this._bounds.height > var2 && this._bounds.x < var1 + var3 && this._bounds.y < var2 + var4) {
  1441.             Rectangle[] var5 = SwingUtilities.computeDifference(((Component)this).getBounds(), new Rectangle(var1, var2, var3, var4));
  1442.             Container var8 = ((Component)this).getParent();
  1443.             int var6 = 0;
  1444.  
  1445.             for(int var7 = var5.length; var6 < var7; ++var6) {
  1446.                ((Component)var8).repaint(var5[var6].x, var5[var6].y, var5[var6].width, var5[var6].height);
  1447.             }
  1448.          } else {
  1449.             ((Component)this).getParent().repaint(this._bounds.x, this._bounds.y, this._bounds.width, this._bounds.height);
  1450.          }
  1451.       }
  1452.  
  1453.       this._bounds.setBounds(var1, var2, var3, var4);
  1454.       super.reshape(var1, var2, var3, var4);
  1455.    }
  1456.  
  1457.    public void revalidate() {
  1458.       if (((Component)this).getParent() == null) {
  1459.          ((Container)this).invalidate();
  1460.       } else if (SwingUtilities.isEventDispatchThread()) {
  1461.          ((Container)this).invalidate();
  1462.          RepaintManager.currentManager(this).addInvalidComponent(this);
  1463.       } else {
  1464.          1 var1 = new 1(this);
  1465.          SwingUtilities.invokeLater(var1);
  1466.       }
  1467.  
  1468.    }
  1469.  
  1470.    public void scrollRectToVisible(Rectangle var1) {
  1471.       int var3 = this.getX();
  1472.       int var4 = this.getY();
  1473.  
  1474.       Container var2;
  1475.       for(var2 = ((Component)this).getParent(); var2 != null && !(var2 instanceof JComponent) && !(var2 instanceof CellRendererPane); var2 = ((Component)var2).getParent()) {
  1476.          Rectangle var5 = ((Component)var2).getBounds();
  1477.          var3 += var5.x;
  1478.          var4 += var5.y;
  1479.       }
  1480.  
  1481.       if (var2 != null && !(var2 instanceof CellRendererPane)) {
  1482.          var1.x += var3;
  1483.          var1.y += var4;
  1484.          ((JComponent)var2).scrollRectToVisible(var1);
  1485.          var1.x -= var3;
  1486.          var1.y -= var4;
  1487.       }
  1488.  
  1489.    }
  1490.  
  1491.    public void setAlignmentX(float var1) {
  1492.       this.alignmentX = new Float(var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1));
  1493.    }
  1494.  
  1495.    public void setAlignmentY(float var1) {
  1496.       this.alignmentY = new Float(var1 > 1.0F ? 1.0F : (var1 < 0.0F ? 0.0F : var1));
  1497.    }
  1498.  
  1499.    public void setAutoscrolls(boolean var1) {
  1500.       if (var1) {
  1501.          if (this.autoscroller == null) {
  1502.             this.autoscroller = new Autoscroller(this);
  1503.          }
  1504.       } else if (this.autoscroller != null) {
  1505.          this.autoscroller.dispose();
  1506.          this.autoscroller = null;
  1507.       }
  1508.  
  1509.    }
  1510.  
  1511.    public void setBackground(Color var1) {
  1512.       Color var2;
  1513.       label23: {
  1514.          var2 = ((Component)this).getBackground();
  1515.          super.setBackground(var1);
  1516.          boolean var10000;
  1517.          if (var2 != null) {
  1518.             var10000 = var2.equals(var1) ^ true;
  1519.          } else {
  1520.             if (var1 != null && !var1.equals(var2)) {
  1521.                break label23;
  1522.             }
  1523.  
  1524.             var10000 = false;
  1525.          }
  1526.  
  1527.          if (!var10000) {
  1528.             return;
  1529.          }
  1530.       }
  1531.  
  1532.       if (!SwingUtilities.is1dot2) {
  1533.          this.firePropertyChange("background", var2, var1);
  1534.       }
  1535.  
  1536.       ((Component)this).repaint();
  1537.    }
  1538.  
  1539.    public void setBorder(Border var1) {
  1540.       Border var2 = this.border;
  1541.       this.border = var1;
  1542.       this.firePropertyChange("border", var2, var1);
  1543.       if (var1 != var2) {
  1544.          if (var1 == null || var2 == null || !var1.getBorderInsets(this).equals(var2.getBorderInsets(this))) {
  1545.             this.revalidate();
  1546.          }
  1547.  
  1548.          ((Component)this).repaint();
  1549.       }
  1550.  
  1551.    }
  1552.  
  1553.    public void setDebugGraphicsOptions(int var1) {
  1554.       DebugGraphics.setDebugOptions(this, var1);
  1555.    }
  1556.  
  1557.    public void setDoubleBuffered(boolean var1) {
  1558.       this.setFlag(1, var1);
  1559.    }
  1560.  
  1561.    public void setEnabled(boolean var1) {
  1562.       boolean var2 = ((Component)this).isEnabled();
  1563.       super.setEnabled(var1);
  1564.       if (!var1 && this.hasFocus()) {
  1565.          FocusManager.getCurrentManager().focusPreviousComponent(this);
  1566.       }
  1567.  
  1568.       this.firePropertyChange("enabled", var2, var1);
  1569.       if (var1 != var2) {
  1570.          ((Component)this).repaint();
  1571.       }
  1572.  
  1573.    }
  1574.  
  1575.    private void setFlag(int var1, boolean var2) {
  1576.       if (var2) {
  1577.          this.flags |= 1 << var1;
  1578.       } else {
  1579.          this.flags &= ~(1 << var1);
  1580.       }
  1581.  
  1582.    }
  1583.  
  1584.    public void setFont(Font var1) {
  1585.       Font var2 = ((Component)this).getFont();
  1586.       super.setFont(var1);
  1587.       if (!SwingUtilities.is1dot2) {
  1588.          this.firePropertyChange("font", var2, var1);
  1589.       }
  1590.  
  1591.       if (var1 != var2) {
  1592.          this.revalidate();
  1593.          ((Component)this).repaint();
  1594.       }
  1595.  
  1596.    }
  1597.  
  1598.    public void setForeground(Color var1) {
  1599.       Color var2;
  1600.       label23: {
  1601.          var2 = ((Component)this).getForeground();
  1602.          super.setForeground(var1);
  1603.          boolean var10000;
  1604.          if (var2 != null) {
  1605.             var10000 = var2.equals(var1) ^ true;
  1606.          } else {
  1607.             if (var1 != null && !var1.equals(var2)) {
  1608.                break label23;
  1609.             }
  1610.  
  1611.             var10000 = false;
  1612.          }
  1613.  
  1614.          if (!var10000) {
  1615.             return;
  1616.          }
  1617.       }
  1618.  
  1619.       if (!SwingUtilities.is1dot2) {
  1620.          this.firePropertyChange("foreground", var2, var1);
  1621.       }
  1622.  
  1623.       ((Component)this).repaint();
  1624.    }
  1625.  
  1626.    public void setMaximumSize(Dimension var1) {
  1627.       Dimension var2 = this.maximumSize;
  1628.       this.maximumSize = var1;
  1629.       this.firePropertyChange("maximumSize", var2, var1);
  1630.    }
  1631.  
  1632.    public void setMinimumSize(Dimension var1) {
  1633.       Dimension var2 = this.minimumSize;
  1634.       this.minimumSize = var1;
  1635.       this.firePropertyChange("minimumSize", var2, var1);
  1636.    }
  1637.  
  1638.    public void setNextFocusableComponent(Component var1) {
  1639.       this.putClientProperty("nextFocus", var1);
  1640.    }
  1641.  
  1642.    public void setOpaque(boolean var1) {
  1643.       boolean var2 = this.getFlag(5);
  1644.       this.setFlag(5, var1);
  1645.       this.firePropertyChange("opaque", var2, var1);
  1646.    }
  1647.  
  1648.    void setPaintingChild(Component var1) {
  1649.       this.paintingChild = var1;
  1650.    }
  1651.  
  1652.    public void setPreferredSize(Dimension var1) {
  1653.       Dimension var2 = this.preferredSize;
  1654.       this.preferredSize = var1;
  1655.       this.firePropertyChange("preferredSize", var2, var1);
  1656.    }
  1657.  
  1658.    public void setRequestFocusEnabled(boolean var1) {
  1659.       this.setFlag(0, !var1);
  1660.    }
  1661.  
  1662.    public void setToolTipText(String var1) {
  1663.       this.putClientProperty("ToolTipText", var1);
  1664.       ToolTipManager var2 = ToolTipManager.sharedInstance();
  1665.       if (var1 != null) {
  1666.          var2.registerComponent(this);
  1667.       } else {
  1668.          var2.unregisterComponent(this);
  1669.       }
  1670.  
  1671.    }
  1672.  
  1673.    protected void setUI(ComponentUI var1) {
  1674.       if (this.field_0 != null) {
  1675.          this.field_0.uninstallUI(this);
  1676.       }
  1677.  
  1678.       ComponentUI var2 = this.field_0;
  1679.       this.field_0 = var1;
  1680.       if (this.field_0 != null) {
  1681.          this.field_0.installUI(this);
  1682.       }
  1683.  
  1684.       this.firePropertyChange("UI", var2, var1);
  1685.       this.revalidate();
  1686.       ((Component)this).repaint();
  1687.    }
  1688.  
  1689.    public void setVisible(boolean var1) {
  1690.       if (var1 != ((Component)this).isVisible()) {
  1691.          super.setVisible(var1);
  1692.          Container var2 = ((Component)this).getParent();
  1693.          if (var2 != null) {
  1694.             Rectangle var3 = ((Component)this).getBounds();
  1695.             ((Component)var2).repaint(var3.x, var3.y, var3.width, var3.height);
  1696.          }
  1697.  
  1698.          this.revalidate();
  1699.          if (this.accessibleContext != null) {
  1700.             if (var1) {
  1701.                this.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.VISIBLE);
  1702.             } else {
  1703.                this.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.VISIBLE, (Object)null);
  1704.             }
  1705.          }
  1706.       }
  1707.  
  1708.    }
  1709.  
  1710.    int shouldDebugGraphics() {
  1711.       return DebugGraphics.shouldComponentDebug(this);
  1712.    }
  1713.  
  1714.    void superProcessMouseMotionEvent(MouseEvent var1) {
  1715.       super.processMouseMotionEvent(var1);
  1716.    }
  1717.  
  1718.    public void unregisterKeyboardAction(KeyStroke var1) {
  1719.       Hashtable var2 = this.keyboardBindings();
  1720.       if (var2 != null) {
  1721.          synchronized(var2){}
  1722.  
  1723.          KeyboardBinding var3;
  1724.          try {
  1725.             var3 = (KeyboardBinding)var2.remove(var1);
  1726.          } catch (Throwable var6) {
  1727.             throw var6;
  1728.          }
  1729.  
  1730.          var2.size();
  1731.          if (var3 != null && var3.condition == 2) {
  1732.             this.unregisterWithKeyboardManager(var1);
  1733.          }
  1734.  
  1735.       }
  1736.    }
  1737.  
  1738.    void unregisterWithKeyboardManager(KeyStroke var1) {
  1739.       KeyboardManager.getCurrentManager().unregisterKeyStroke(var1, this);
  1740.    }
  1741.  
  1742.    public void update(Graphics var1) {
  1743.       this.paint(var1);
  1744.    }
  1745.  
  1746.    public void updateUI() {
  1747.    }
  1748.  
  1749.    private void writeObject(ObjectOutputStream var1) throws IOException {
  1750.       var1.defaultWriteObject();
  1751.       if (this.field_0 != null && this.getUIClassID().equals("ComponentUI")) {
  1752.          this.field_0.installUI(this);
  1753.       }
  1754.  
  1755.    }
  1756. }
  1757.